package io.kiki.sba.registry.server.metadata.lease.dataStoreNode;

import io.kiki.sba.registry.common.model.metaserver.cluster.VersionedList;
import io.kiki.sba.registry.common.model.metaserver.nodes.DataStoreNode;
import io.kiki.sba.registry.lifecycle.Lifecycle;
import io.kiki.sba.registry.observer.Observable;
import io.kiki.sba.registry.server.metadata.lease.LeaseManager;
import io.kiki.sba.registry.server.metadata.monitor.dataStoreNode.DataMessageListener;
import io.kiki.sba.registry.server.metadata.monitor.dataStoreNode.DataStoreNodeStats;

import java.util.List;


public interface DataStoreNodeManager extends Lifecycle, Observable, LeaseManager<DataStoreNode>, DataMessageListener {


    List<DataStoreNodeStats> getDataStoreNodeStatsList();


    VersionedList<DataStoreNode> getDataStoreNodeInfo();

    long getEpoch();
}
